// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Пин Ап Казино Онлайн — регистрируйтесь и получите приветственные бонусы от Pin Up Casino – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Пин Ап Казино Онлайн — регистрируйтесь и получите приветственные бонусы от Pin Up Casino

В мире онлайн-казино есть много вариантов, но pin up casino – это один из лучших. Это популярное онлайн-казино, которое предлагает игрокам из России и других стран играть в лучшие игры и получать выгодные бонусы.

Pin Up Casino – это онлайн-казино, которое было основано в 2016 году и с тех пор стало одним из лидеров в мире онлайн-казино. Онлайн-казино Pin Up Casino предлагает игрокам более 3 000 игр, включая слоты, карточные игры, рулетку и другие. Игроки могут играть на деньги или в режиме демо.

Один из главных преимуществ Pin Up Casino – это приветственные бонусы, которые предлагаются новым игрокам. Новый игрок может получить до 125 000 рублей на свой счет, а также 50 бесплатных вращений в игре Book of Dead. Это отличный способ начать играть в онлайн-казино и получить выгоду.

Pin Up Casino – это безопасное онлайн-казино, которое использует современные технологии для защиты данных и обеспечивает безопасность транзакций. Игроки могут быть уверены в том, что их данные и деньги безопасны.

Если вы хотите начать играть в онлайн-казино и получать выгодные бонусы, то регистрируйтесь в Pin Up Casino сегодня. Вам доступны приветственные бонусы, а также множество других преимуществ, которые делают Pin Up Casino одним из лучших онлайн-казино в мире.

Регистрация в Pin Up Casino: pinup-casino.ru – это официальный сайт онлайн-казино, где вы можете регистрироваться и начать играть. Не забывайте, что регистрация в онлайн-казино – это безопасный и легкий процесс, который займет только несколько минут.

Pin Up Casino Online – Register and Get Welcome Bonuses from Pin Up Casino

Registration Process

Для регистрации в Pin Up Casino вам нужно выполнить несколько простых шагов:

Шаг 1: Войти на официальный сайт Pin Up Casino Шаг 2: Нажать на кнопку “Регистрация” Шаг 3: Ввести свои личные данные Шаг 4: Нажать на кнопку “Зарегистрироваться”

Welcome Bonuses

После регистрации вы получите приветственные бонусы, которые позволят вам начать играть в игры и получать выигрыши.

Games

Pin Up Casino предлагает игрокам играть в более 3 000 игр, включая слоты, карточные игры, рулетку и другие.

Payment Methods

Pin Up Casino предлагает несколько способов оплаты, включая Visa, Mastercard, Skrill, Neteller и другие.

Customer Support

Если у вас возникнут вопросы или проблемы, вы можете обратиться к поддержке Pin Up Casino, которая работает круглосуточно, 7 дней в неделю.

Pin Up Casino Online – Регистрируйтесь и получите приветственные бонусы

Pin Up Casino – это популярное онлайн-казино, которое предлагает игрокам из России и других стран играть в лучшие игры и получать приветственные бонусы. Для регистрации на сайте Pin Up Casino достаточно заполнить форму, указав свои контактные данные и выбрать способ оплаты.

После регистрации вы получите приветственный бонус в 50 000 рублей, который можно использовать для игры в любые игры на сайте. Бонус будет зачислен на ваш счет автоматически, как только вы подтвердите регистрацию.

На сайте Pin Up Casino доступны игры от ведущих разработчиков, включая NetEnt, Microgaming и Evolution Gaming. Вы можете играть в слоты, карточные игры, рулетку, покер и другие игры, которые вам понравятся.

Pin Up Casino предлагает безопасную и надежную систему оплаты, которая обеспечивает безопасность транзакций и защищает ваш счет. Вам доступны различные способы оплаты, включая Visa, Mastercard, Skrill, Neteller и другие.

Если у вас возникнут вопросы или проблемы, вы можете обратиться к поддержке Pin Up Casino, которая работает круглосуточно, чтобы помочь вам решить любые вопросы.

Также, Pin Up Casino предлагает программу лояльности, которая позволяет игрокам получать дополнительные бонусы и преимущества за свою лояльность. Для этого вам нужно собирать баллы, зарабатывая их за игру, и обменивать их на бонусы и другие преимущества.

В целом, Pin Up Casino – это отличное место для игроков, которые ищут безопасное и надежное онлайн-казино, где можно играть в лучшие игры и получать приветственные бонусы. Регистрируйтесь на сайте Pin Up Casino и начните играть сегодня!

Регистрация: простой и быстрый процесс

Для начала, вам нужно перейти на официальный сайт Pin Up Casino и нажать на кнопку “Регистрация”. Затем, вам нужно ввести свои личные данные, такие как имя, фамилия, email и пароль. Вам также нужно выбрать валюту, в которой вы хотите играть.

После этого, вам будет предложено подтвердить свой email, отправив ссылку на регистрацию на указанный email. Это дополнительная мера безопасности, чтобы защитить ваш аккаунт.

После подтверждения email, вы сможете войти в свой аккаунт и начать играть в Pin Up Casino. Мы предлагаем вам широкий спектр игр, включая слоты, карточные игры, рулетку и другие. Вам также доступны различные бонусы и акции, которые помогут вам начать играть с преимуществом.

Наше казино – это лучшее место для игроков, которые ищут развлечения и приключения. Мы обеспечиваем безопасность и конфиденциальность вашей информации, чтобы вы могли насладиться игрой без каких-либо волнений.

Также, мы предлагаем вам приветственные бонусы, которые помогут вам начать играть с преимуществом. Вам будет предложено выбрать из различных пакетов бонусов, которые включают в себя деньги, бесплатные спины и другие преимущества.

Начните играть в Pin Up Casino сегодня и насладитесь игрой на высоком уровне!

Приветственные бонусы: что это и как их получить

Приветственные бонусы – это дополнительные выгоды, которые предлагает Пин Ап Казино Онлайн для новых игроков. Они помогают начать играть с преимуществом и увеличить шансы на выигрыш.

Приветственные бонусы могут быть различных типов:

  • Бонусы на депозит – это дополнительные деньги, которые добавляются к вашему счету при первом, втором или третьем депозите.
  • Бонусы на игру – это дополнительные выигрышы, которые вы можете получать за участие в определенных играх.
  • Бонусы на рефбек – это дополнительные выигрышы, которые вы можете получать за приглашение друзей в Пин Ап Казино Онлайн.

Чтобы получить приветственные бонусы, вам нужно зарегистрироваться на сайте Пин Ап Казино Онлайн и выполнить некоторые условия:

  • Зарегистрироваться на сайте Пин Ап Казино Онлайн.
  • Внести депозит на свой счет.
  • Выбрать игру, для которой предлагается приветственный бонус.
  • Играть в соответствии с условиями бонуса.
  • Важно! Приветственные бонусы имеют свои условия и ограничения. Перед началом игры, убедитесь, что вы понимаете условия бонуса, чтобы не возникло никаких проблем.

    Пин Ап Казино Онлайн – это лучшее место для игроков, которые ищут выгоды и развлечения. Регистрируйтесь и получите приветственные бонусы, чтобы начать играть с преимуществом!

    Как играть в Pin Up Casino Online

    Pin Up Casino – это популярное онлайн-казино, которое предлагает игрокам широкий спектр игр и привлекательных предложений. В этом руководстве мы рассмотрим основные шаги, которые помогут вам начать играть в Pin Up Casino Online.

    Шаг 1: Регистрация

    Для начала вам нужно зарегистрироваться на сайте Pin Up Casino. Это можно сделать, кликнув на кнопку “Регистрация” на главной странице сайта. Введите свои личные данные, включая имя, фамилию, дату рождения, адрес электронной почты и телефон. Вам также нужно выбрать пароль и подтвердить его.

    После регистрации вам будет отправлено письмо с подтверждением email. Откройте это письмо и кликните на ссылку, чтобы подтвердить свой аккаунт.

    Шаг 2: Депозит и выбор игры

    После регистрации и подтверждения аккаунта вы можете сделать депозит, чтобы начать играть. Pin Up Casino предлагает несколько способов депозита, включая карты Visa, Mastercard, Neteller, Skrill и другие. Вам нужно выбрать способ депозита, который вам удобен.

    После депозита вы можете выбрать игру, которая вам понравилась. Pin Up Casino предлагает игры от ведущих разработчиков, включая NetEnt, Microgaming и Evolution Gaming. Вы можете играть в слоты, карточные игры, рулетку, покер и другие игры.

    Шаг 3: Управление аккаунтом

    Вам нужно регулярно управлять своим аккаунтом, чтобы отслеживать свой баланс, историю игр и получать уведомления о новых предложениях и акциях. Вам также можно изменить настройки аккаунта, включая язык и валюту.

    Pin Up Casino предлагает также мобильное приложение, которое позволяет играть на смартфоне или планшете. Это удобно, если вы хотите играть в любое время и в любом месте.

    В целом, Pin Up Casino – это популярное онлайн-казино, которое предлагает игрокам широкий спектр игр и привлекательных предложений. Следуя этим шагам, вы сможете начать играть в Pin Up Casino Online и насладиться игрой.

    Pin Up Casino Online – это лучший выбор для игроков, ищущих комфорт и безопасность в онлайн-казино. В этом разделе мы рассмотрим основные причины, почему Pin Up Casino Online является лучшим выбором для вас.

    Уникальные приветственные бонусы

    Pin Up Casino Online предлагает новым игрокам уникальные приветственные бонусы, которые помогут начать игру с преимуществом. Начиная с 125% до 10 000 рублей, бонусы помогут вам начать игру с комфорта и уверенностью.

    • Бонусы для новых игроков
    • Бонусы для постоянных игроков
    • Бонусы для игроков, сделавших депозит

    Большой выбор игр

    Pin Up Casino Online предлагает огромный выбор игр, включая слоты, карточные игры, рулетку и другие. Наш выбор игр постоянно пополняется, чтобы обеспечить вам наилучший выбор.

  • Слоты от ведущих разработчиков
  • Карточные игры
  • Рулетка
  • Баккара
  • Безопасность и конфиденциальность

    Pin Up Casino Online обеспечивает безопасность и конфиденциальность своих игроков, используя современные технологии шифрования и защищенные соединения. Вам не нужно беспокоиться о безопасности своих данных.

    • Защищенные соединения
    • Современные технологии шифрования
    • Профессиональная поддержка

    Многоязычный интерфейс

    Pin Up Casino Online предлагает интерфейс, доступный на нескольких языках, включая русский. Это позволяет игрокам из разных стран играть комфортно и без языковых барьеров.

    • Русский язык
    • Английский язык
    • Немецкий язык
    • Итальянский язык
    Design and Develop by Ovatheme